package Map;

import java.util.*;

/*
* Map的遍历
* Map提供了三种遍历方式：
* 1：遍历所有的key
* 2：遍历每一个键值对
* 3：遍历所有的value(相对不常用)
* */
public class MapDemo2 {
    public static void main(String[] args) {
        Map<String,Integer>map=new HashMap<>();
        map.put("语文", 99);
        map.put("数学", 98);
        map.put("英语", 97);
        map.put("物理", 96);
        map.put("化学", 99);
        System.out.println(map);
        /*
        * 遍历所有的key
        * Set keySet()
        * 将当前Map中所有的key以一个Set集合形式返回
        * */
        Set<String>keySet=map.keySet();
        for (String key:keySet){
            System.out.println("key"+key);
        }
        /*
        * Set entrySet()
        * 将当前Map中每一组键值对以一个Entry实例形式表示并存入一个Set
        * 集合后将其返回
        * */
        Set<Map.Entry<String ,Integer>> entrySet=map.entrySet();
        for (Map.Entry<String ,Integer> e:entrySet){
            String key=e.getKey();
            Integer value=e.getValue();
            System.out.println(key+":"+value);
        }
        /*
        * Collection values()
        * 将当前Map中所有的value以一个集合形式返回
        * */
        Collection<Integer> values=map.values();
        for (Integer value:values){
            System.out.println("value:"+value);
        }
        /*
        * JDK8之后遍历集合和Map时可以使用forEach方法lambda表达式
        * 进行遍历
        * */
        map.forEach(
                (k,v)->System.out.println(k+":"+v)
        );

        Collection c=new ArrayList<>();
        c.add("one");
        c.add("two");
        c.add("three");
        c.add("four");
        c.add("five");
        System.out.println(c);
        c.forEach(
                e->System.out.println(e)
        );
    }
}
